Processing units, such as graphics processing units (GPUs), include processing elements and a general purpose register (GPR) that stores data for the execution of an instruction. In some examples, a processing element executes instructions for processing one item of data, and respective processing elements store the data of the item or the resulting data of the item from the processing in the GPR. An item of data may be the base unit on which processing occurs. For instance, in graphics processing, a vertex of a primitive is one example of an item, and a pixel is another example of an item. There is graphics data associated with each vertex and pixel (e.g., coordinates, color values, etc.).
There may be multiple processing elements within a processor core of the processing element allowing for parallel execution of an instruction (e.g., multiple processing elements execute the same instruction at the same time). A shader is a computer program that can utilize a parallel processing environment (e.g., shader processors) and have been used to perform graphics rendering techniques on two and three-dimensional models at various stages of the graphics processing pipeline. Examples of shaders include pixel (or fragment) shaders, used to compute color and other attributes of a pixel (or fragment); vertex shaders, used to control position, movement, lighting, and color, or a vertex; geometry shaders, used to generate graphics primitives; tessellation-related shaders (e.g., hull shaders and/or domain shaders that are used when subdividing patches of vertex data into smaller primitives; and compute shaders are used for computing other information (e.g., non-graphics data).